package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.WmsQuickExitDetailed;
import com.jy.wms.pojo.WmsStockMoveDetailed;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
   * @ClassName: WmsQuickExitDetailedMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author Liyi
   * @Date Sat Apr 28 09:11:38 CST 2018
   */
   public interface WmsQuickExitDetailedMapper extends BaseDao<WmsQuickExitDetailed> {

    /**
     * 查询可用库存数量
     * @param wmsStockMoveDetailed
     * @return
     */
    public List<WmsStockMoveDetailed> searchKc(@Param("WmsStockMoveDetailed") WmsStockMoveDetailed wmsStockMoveDetailed);

       /**
        * 插入所有快速出库明细
        * @param list
        * @return
        */
       public Integer baseInsertAll(@Param("list") List<WmsQuickExitDetailed> list);

    /**
     * 根据库存ID 查询可用库存数量
     * @param kcid
     * @return
     */
    public Integer getKykcsl(@Param("kcid") String kcid);

   /**
    * 插入一条记录
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsert(@Param("WmsQuickExitDetailed") WmsQuickExitDetailed entity);

   /**
    * 插入一条记录（匹配有值的字段）
    * @param entity 实体对象
    * @return int
    */
   public Integer baseInsertSelective(@Param("WmsQuickExitDetailed") WmsQuickExitDetailed entity);

   /**
    * 删除（根据主键ID删除）
    * @param id 主键
    * @return int
    */
   public Integer baseDeleteByPrimaryKey(@Param("id") String id);

   /**
    * 删除（根据ID 批量删除）
    * @param idList 主键ID列表
    * @return int
    */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);

       /**
        * 根据ksckid查询快速出库明细信息
        * @param ksckid
        * @return
        */
    public List<Map<String,Object>> getList(@Param("ksckid") String ksckid);

    /**
     * 根据库存ID查询对应的货品信息
     * @param kcid
     * @return
     */
    public Map<String,Object> getGoodsByKcid (@Param("kcid") String kcid);

    /**
     * 扣减库存
     * @param dxjsl
     * @return
     */
    public Integer removeDxjsl (@Param("dxjsl") String dxjsl, @Param("kcid") String kcid);

    /**
     * 增加库存
     * @param dxjsl
     * @return
     */
    public Integer addDxjsl (@Param("dxjsl") String dxjsl, @Param("kcid") String kcid);


    /**
    * 分页查询
    * @param entity 实体
    * @return List<WmsQuickExitDetailed>
    */
    public List<WmsQuickExitDetailed> baseSelectPage(@Param("WmsQuickExitDetailed") WmsQuickExitDetailed entity);

    /**
    * 查询（根据主键ID查询）
    * @param id 主键ID
    * @return User
    */
    public WmsQuickExitDetailed baseSelectByPrimaryKey(@Param("id") String id);

   /**
    * 查询（根据ID 批量查询）
    * @param idList 主键ID列表
    * @return list
    */
    public List<WmsQuickExitDetailed> baseSelectBathPrimaryKeys(@Param("list") List<String> idList);

   /**
    *修改 （匹配有值的字段）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsQuickExitDetailed") WmsQuickExitDetailed entity);

   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey(@Param("WmsQuickExitDetailed") WmsQuickExitDetailed entity);
}
